/*
 * 版权声明 (c) 2025 XXX科技有限公司
 *
 * 本软件及其相关文档文件受版权保护。未经版权所有者明确书面许可，任何单位或个人不得
 * 以任何形式复制、传播、修改、出售、出租、反向工程、反编译或利用本软件的任何部分。
 *
 * 对于任何违反本声明的行为，版权所有者保留追究法律责任的权利。
 */

#ifndef __GLOBAL_H__
#define __GLOBAL_H__

// ============== Windows ==============
#if defined(_WIN32) || defined(_WIN64)
#include <windows.h>
typedef int ssize_t;
#define SSIZE_MAX LONG_MAX
#define SSIZE_MIN LLONG_MINs
#else
// ========= Linux/Unix/MacOS  =========
#include <sys/types.h>
#endif

// =============  Common  ==============
// 线程休眠(跨平台, 推荐)
#define SLEEP_MS(ms) std::this_thread::sleep_for(std::chrono::milliseconds(ms))


// ==============  Const  ==============
#define BUFFER_SLIM 256   // 小缓冲区
#define BUFFER_SIZE 1024  // 中缓冲区
#define BUFFER_LARGE 4096 // 大缓冲区

// ======  Deprecated Warnning  ========
#if defined(__GNUC__) || defined(__clang__)
#if defined(__GNUC__) && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5))
#define DEPRECATED(msg) __attribute__((deprecated))
#else
#define DEPRECATED(msg) __attribute__((deprecated(msg)))
#endif
#elif defined(_MSC_VER)
#define DEPRECATED(msg) __declspec(deprecated(msg))
#else
#define DEPRECATED(msg)
#endif // Deprecated Warnning
#endif // __GLOBAL_H__

#if 0
DEPRECATED("replace with Hello") //废弃变量
string x="hello";

DEPRECATED("replace with newFunction") //废弃函数
void oldFunction();
#endif
